---
title: Veröffentliche deine Astro-Website auf Google Cloud
description: Wie du deine Astro-Website auf Google Cloud im Internet veröffentlichst.
sidebar:
  label: Google Cloud
type: deploy
logo: google-cloud
supports: ['ssr', 'static']
i18nReady: true
---

import { Steps } from '@astrojs/starlight/components';

[Google Cloud](https://cloud.google.com/) ist eine voll ausgestattete Web-App-Hosting-Plattform, die für die Veröffentlichung einer Astro-Website verwendet werden kann.

## So funktioniert die Veröffentlichung

### Cloud Storage (nur statisch)

<Steps>
1. [Erstelle ein neues GCP-Projekt](https://console.cloud.google.com/projectcreate) oder wähle ein bereits vorhandenes Projekt aus.

2. Erstelle einen neuen Bucket unter [Cloud Storage](https://cloud.google.com/storage).

3. Gib ihm einen Namen und nimm alle anderen erforderlichen Einstellungen vor.

4. Lade deinen `dist`-Ordner entweder manuell oder unter Verwendung von [Cloud Build](https://cloud.google.com/build) hoch.

5. Aktiviere den öffentlichen Zugriff, indem du `allUsers` eine neue Berechtigung namens `Storage Object Viewer` hinzufügst.

6. Bearbeite die Website-Konfiguration und füge `ìndex.html` als Einstiegspunkt und `404.html` als Fehlerseite hinzu.
</Steps>

### Cloud Run (SSR und statisch)

Cloud Run ist eine serverlose Plattform, die es dir ermöglicht, einen Container zu betreiben, ohne dass du eine Infrastruktur verwalten musst. Sie kann sowohl für statische als auch für SSR-Websites genutzt werden.

#### Bereite den Dienst vor

<Steps>
1. [Erstelle ein neues GCP-Projekt](https://console.cloud.google.com/projectcreate) oder wähle ein bereits vorhandenes Projekt aus.

2. Stelle sicher, dass die [Cloud Run API](https://console.cloud.google.com/apis/library/run.googleapis.com) aktiviert ist.

3. Erstelle einen neuen Dienst.
</Steps>

#### Dockerfile erstellen & Container erzeugen

Bevor du deine Astro-Website in Cloud Run veröffentlichen kannst, musst du ein Dockerfile erstellen, mit dem du den Container erzeugen kannst. Weitere Informationen über [wie du Docker mit Astro verwendest](/de/recipes/docker/#creating-a-dockerfile) findest du in unseren Beispielen.

Sobald das Dockerfile erstellt ist, erstellst du ein Image und überträgst es zu Google Cloud. Es gibt mehrere Möglichkeiten, dies zu tun:

**Lokale Erzeugung mit Docker**:

Verwende den Befehl `docker build`, um das Image zu erstellen, `docker tag`, um ihm ein Tag zu geben, und dann `docker push`, um es in eine Registry zu pushen. Im Fall von Google Cloud ist [`Artifact Registry`] (https://cloud.google.com/artifact-registry/docs/docker/pushing-and-pulling) die einfachste Option, aber du kannst auch [Docker Hub](https://hub.docker.com/) verwenden.

```bash
# Erzeuge deinen Container
docker build .

docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/TARGET-IMAGE:TAG

# Pushe dein Image in eine Registry
docker push HOSTNAME/PROJECT-ID/IMAGE:TAG
```

Ändere die folgenden Werte in den obigen Befehlen, damit sie zu deinem Projekt passen:


- `SOURCE_IMAGE`: der lokale Imagename oder die Image-ID.
- `HOSTNAME`: der Registry-Host (`gcr.io`, `eu.gcr.io`, `asia.gcr.io`, `us.gcr.io`, `docker.io`).
- `PROJECT`: deine Google Cloud Projekt-ID.
- `TARGET-IMAGE`: Der Name für das Image, wenn es in der Registry gespeichert wird.
- `TAG` ist die Version, die mit dem Image verknüpft ist.

[Lies mehr in der Google Cloud-Dokumentation](https://cloud.google.com/artifact-registry/docs/docker/pushing-and-pulling)

**Ein anderes Tool verwenden**:

Du kannst ein CI/CD-Tool verwenden, das Docker unterstützt, z.B. [GitHub Actions](https://github.com/marketplace/actions/push-to-gcr-github-action).

**Erzeuge mit [Cloud Build](https://cloud.google.com/build)**:

Anstatt die Dockerdatei lokal zu erstellen, kannst du Google Cloud anweisen, das Image per Fernzugriff zu erstellen. Siehe dazu die [Google Cloud Build-Dokumentation](https://cloud.google.com/build/docs/build-push-docker-image).

#### Den Container veröffentlichen

Die Veröffentlichung kann manuell in deinem Terminal [mit `gcloud`](https://cloud.google.com/run/docs/deploying#service) oder automatisch mit [Cloud Build](https://cloud.google.com/build) oder einem anderen CI/CD-System durchgeführt werden.

:::note[Benötigst du öffentlichen Zugang?]
Vergiss nicht, die Berechtigung `Cloud Run Invoker` zur Gruppe `allUsers` in den Cloud Run-Berechtigungseinstellungen hinzuzufügen!
:::
